Algorithmic Thinking: A Problem-Based Introduction

Algorithmic Thinking: A Problem-Based Introduction

  • Downloads:5940
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2022-01-12 09:54:58
  • Update Date:2025-09-06
  • Status:finish
  • Author:Daniel Zingaro
  • ISBN:1718500807
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

A hands-on, problem-based introduction to building algorithms and data structures to solve problems with a computer。

Programming is about using a computer to solve problems, and algorithms and data structures are the building blocks of computer programs。 For each problem that a programmer wants to solve, they employ an algorithm: a sequence of steps for solving the problem。 Many books teach algorithms independently of specific problems, but this book uses careful explanations, examples, and arguments, rather than formal mathematics and proofs which make it difficult for the reader to connect what they are learning to what they can do with that learning。 Algorithmic Thinking: A Problem-Based Introduction teaches the reader to use the best algorithms and data structures for a given situation by walking them through solving real-world problems pulled from international programming competitions, such as how to determine whether snowflakes are unique; how to win a game in the minimum number of moves; how to find the number of ways to get to someone's house; how to escape a cave in as few steps as possible; and so on。

Readers tackle challenging topics like recursion, dynamic programming, graphs, greedy algorithms, heaps, hash tables, segment trees, and other data structures for efficiently handling data。 The book contains no pseudocode: all code is written in C and is thoroughly explained in the text (C is a de facto programming language for programming competitions)。 Zingaro also shows how several problems can be reduced to algorithms on graphs。 By the end of the book, readers should understand the importance of modeling, how to carefully work through a problem, and why it pays to organize data using data structures。

Download

Reviews

Sophie

The programming language used in this book is C。 The author compiles a variety set of problems and inspires the readers on solving the problems step by step。The contents include eight parts:1。 hash tables2。 trees and recursion3。 memoization and dynamic programming4。 graphs and BFS5。 shortest paths in weighted graphs6。 heaps and segment trees7。 heaps and segment trees8。 union-findThis is a book good for reference and revisiting time after time。

Jeethu Rao

This is a great book that approaches algorithmic thinking from the competitive programming angle。 The book uses the C programming language to explore and solve interesting problems that match the theme of each chapter, from past programming contests。 Most of the problems in it are way harder than the typical SV SWE interview questions。 If your motivation for reading the book is to ace coding interviews, you’ll perhaps be better served by reading more pedestrian books。

Svend Christian Svendsen

I was recently asked to review this book by the author。 The book teaches algorithms based on problems from various programming competitions。 It covers a lot of the basic algorithms and data structures you would see in a typical programming contest。The author manages to motivate the various algorithms and data structures very well by showing why more naive solutions fail to solve the problems。 He then proceeds to flesh out the faster solution by iterating on the existing code。 I believe this appr I was recently asked to review this book by the author。 The book teaches algorithms based on problems from various programming competitions。 It covers a lot of the basic algorithms and data structures you would see in a typical programming contest。The author manages to motivate the various algorithms and data structures very well by showing why more naive solutions fail to solve the problems。 He then proceeds to flesh out the faster solution by iterating on the existing code。 I believe this approach helps in showing exactly why algorithms and data structures are useful and also demonstrates a way to approach these kinds of problems。 This is something a lot of other textbooks fail to do。 Overall I think it's a very good book。 It is not as comprehensive as a university course on algorithms, but presents the solutions in a very nice way。 I would recommend it to someone who is familiar with programming but has not yet been introduced to algorithms and data structures。 。。。more